// SET_TRUE: ALLOW_TRAILING_COMMA

fun foo() {
    testtest[foofoo, foofoo, foofoo,
        foofoo, bar]

    testtest[
        foofoo, foofoo, foofoo, foofoo, bar
    ]

    testtest[foofoo, foofoo, foofoo, foofoo, bar
    ]

    testtest[foofoo, foofoo, foofoo, foofoo,
        bar
    ]

    testtest[foofoo
    ]

    testtest[
        foofoo]

    testtest[
        foofoo
    ]

    testtest[foofoo]

    testtest[foofoo, testtest[testtest[foofoo]]]

    testtest[
        foofoo, fososos,
        testtest[testtest[foofoo]],
    ]

    testtest[foofoo, testtest[testtest[foofoo]], testsa]

    testtest[foofoo, seee, testtest[testtest[foofoo]], testsa]

    useCallable["A", Callable { println["Hello world"] }]

    useCallable["B", "C", Callable {
        println["Hello world"]
    }, Callable {
        println["Hello world"]
    }]

    useCallable[Callable { println["Hello world"] }]

    useCallable[Callable { println["Hello world"] }]

    useCallable[
        Callable {
            println["Hello world"]
        },
    ]

    useCallable[Callable { println["Hello world"] }
    ]

    useCallable[Callable { println["Hello world"] }]{

    }

    useCallable[
        Callable { println["Hello world"] }]

    useCallable["A", { println["Hello world"] }]

    useCallable["B", "C", {
        println["Hello world"]
    }, {
        println["Hello world"]
    }]

    useCallable[{ println["Hello world"] }]

    useCallable[{ println["Hello world"] }]

    useCallable[
        { println["Hello world"] },
    ]

    useCallable[{ println["Hello world"] }
    ]

    useCallable[
        { println["Hello world"] }]

    useCallable["A", object : Callable<Unit> {
        override fun call() {
            println["Hello world"]
        }
    }]

    useCallable["A", object : Callable<Unit> {
        override fun call() {
            println["Hello world"]
        }
    }]

    useCallable["B", "C", object : Callable<Unit> {
        override fun call() {
            println["Hello world"]
        }
    }, foo[0]]

    useCallable[object : Callable<Unit> {
        override fun call() {
            println["Hello world"]
        }
    }]

    useCallable[
        object : Callable<Unit> {
            override fun call() {
                println["Hello world"]
            }
        },
    ]

    useCallable[object : Callable<Unit> {
        override fun call() {
            println["Hello world"]
        }
    }
    ]

    useCallable[object : Callable<Unit> {
        override fun call() {
            println["Hello world"]
        }
    }] {

    }

    useCallable[
        object : Callable<Unit> {
            override fun call() {
                println["Hello world"]
            }
        }]

    testtest[
        foofoo, foofoo, foofoo, foofoo,
        bar /*
    */, /* */ foo
    ]

    testtest[/*
    */foofoo, foofoo, foofoo, /*

    */
        foofoo, bar]

    testtest[foofoo, foofoo, foofoo, foofoo, bar/*
    */]

    testtest[foofoo, foofoo, foofoo, foofoo, bar // awdawda
    ]

    testtest[foofoo, foofoo, foofoo, foofoo, /*

    */
        bar
    ]

    testtest[foofoo // fd
    ]

    testtest[ /**/
        foofoo
    ]

    testtest[foofoo/**/]

    testtest[foofoo, foofoo, foofoo, foofoo/*
     */, /* */ bar
    ]

    testtest[foofoo // fd
    ]

    testtest[ /**/
        foofoo
    ]

    testtest[foofoo/**/]

    testtest[
        foofoo, fososos,
        /*
    */
        testtest[testtest[foofoo]],
    ]

    testtest[foofoo, testtest[testtest[foofoo]], /**/testsa]

    testtest[foofoo, testtest[testtest[foofoo]]/* */, /**/testsa]

    testtest[foofoo, testtest[testtest[foofoo]]/*
    */, testsa]

    testtest[foofoo, seee, testtest[testtest[foofoo]], /**/testsa]

    testtest[foofoo, seee, testtest[testtest[foofoo]], /*
    */testsa]

    useCallable["B", "C", Callable {
        println["Hello world"]
    }, /* */ Callable {
        println["Hello world"]
    }]

    useCallable[Callable { println["Hello world"] } // ffd
    ]
}
